﻿//////////////////////////////////////////////////////////////////////////////
//
//  Copyright © 1998-2024 Glodon Company Limited.  All rights reserved.
//
//  Use of this software is subject to the terms of the Glodon license
//  agreement provided at the time of installation or download, or which
//  otherwise accompanies this software in either electronic or hard copy form.  
//
//////////////////////////////////////////////////////////////////////////////


#pragma once        
#include "IFamilySketch.h"
#include "GmFamilyService.h"

namespace gfam
{
    class IFamily3DSketchCurve;
    /// \brief 三维草图的接口类
    class GM_FAMILY_SERVICE_EXPORT IFamilySketch3D : public IFamilySketch
    {
        DEFINE_CAST_DERIVED(gfam::IFamilySketch3D, gfam::IFamilySketch)
    public:
        /// \brief 析构函数
        virtual ~IFamilySketch3D() {};

    public:
        /// \brief 创建一个三维草图对象
        /// 
        /// \param pDoc          所属文档
        /// \return 若创建成功则返回IFamilySketch3D*，否则返回nullptr
        static IFamilySketch3D* Create(gcmp::IDocument* pDoc);

        /// \brief 获取草图上的所有三维曲线
        /// 
        /// \param curves 用来保存返回结果的数组
        /// \return 无
        virtual void GetAllCurves(std::vector<IFamily3DSketchCurve*>& curves) const = 0;

    };
}